package com.company.cloud.mall.modules.app.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import io.swagger.annotations.Api;

//@RestController
//@RequestMapping("/shop/product")
//@Api(tags="Shop_商品")
public class ShopProductController {
//
//	@Autowired
//	private ProductInfoCacheService productInfoCacheService;
//	@Autowired
//	private FavoriteInfoService favoriteInfoService;
//	@Autowired
//	private ProductInfoService productInfoService;
//	@Autowired
//	private RedisUtils redisUtils;
//	@Autowired
//	private ProductStockInfoService productStockInfoService;
//	
//	@PostMapping("/query")
//	@SysLog("商品查询")
//	@ApiOperation(value="商品查询", response=BaseResult.class)
//	public BaseResult query(@RequestBody ProductQuery4PageParam params) {
//		String lang=AuthContextUtils.getLang();
//		
//		String tagId=null;
//		if(CheckUtils.hasInt(params.getTagId())) {
//			tagId=","+params.getTagId().toString()+","; 
//		}
//		
//		String tagIds=null;
//		if(!CollectionUtils.isEmpty(params.getTagIds())) {
//			StringBuilder orSql=new StringBuilder();
//			params.getTagIds().forEach(id->{
//				if(!StringUtils.isEmpty(orSql.toString())) {
//					orSql.append(" or ");
//				}
//				orSql.append(StrUtil.format("tag_values like '%,{},%'", id));
//			});
//			if(!StringUtils.isEmpty(orSql.toString())) {
//				tagIds=StrUtil.format(" ({}) ", orSql.toString());
//			}
//		}
//		
//		IPage<ProductInfo> page=productInfoService.page(new Page<ProductInfo>(params.getPage(), params.getRows()), 
//				new QueryWrapper<ProductInfo>()
//				.eq("company_no", AuthContextUtils.getCompanyNo())
//				.eq(CheckUtils.hasInt(params.getCategoryId()), "category_id", params.getCategoryId())
//				.eq(StringUtils.hasText(params.getCompanyNo()), "company_no", params.getCompanyNo())
//				.eq(StringUtils.hasText(params.getType()), "type", params.getType())
//				.eq(StringUtils.hasText(params.getTwoType()), "two_type", params.getTwoType())
//				.like(StringUtils.hasText(params.getName()), "name", params.getName())
//				.like(StringUtils.hasText(params.getCaption()), "caption", params.getCaption())
//				.eq("is_marketable",YNEnum.YES.getCode())
//				.inSql(StringUtils.hasText(params.getCategoryTreePath()), "category_id", 
//						"select id from product_category_info where tree_path like '%"+params.getCategoryTreePath()+"%'")
//				.like(StringUtils.hasText(tagId), "tag_values", tagId)
//				.apply(StringUtils.hasText(tagIds), tagIds)
//				.orderByDesc("orders")
//				);
//		if(page==null || CollectionUtils.isEmpty(page.getRecords())) {
//			return BaseResult.ok();
//		}
////		Set<String> custNos=new HashSet<String>();
////		page.getRecords().forEach(item->{
////			if(StringUtils.hasText(item.getCustNo())) {
////				custNos.add(item.getCustNo());
////			}
////		});
//		IPage<Product> data= page.convert(new Function<ProductInfo, Product>() {
//			@Override
//			public Product apply(ProductInfo entity) {
//				Product product= ProductCacheConvertUtils.convertProduct(entity, null, null, null, null);
//				return product;
//			}
//		});
//		return BaseResult.ok(data);
//	}
//	
//	
//	
//	@GetMapping("/get")
//	@SysLog("商品信息")
//	@ApiOperation(value="商品信息")
//	public BaseResult get(@RequestParam("productNo") String productNo) {
//		String lang=AuthContextUtils.getLang();
//		Product product= productInfoCacheService.getProductByNoByCache(productNo);
//		
////		if(product) {
////		}
//		
////		BusinessModel business= shopBusinessCacheService.getBusinessByCache(product.getCustNo());
//		
//		LoginUserInfo userInfo= AuthContextUtils.getUser2Head(redisUtils);
//		if(userInfo!=null) {
//			List<FavoriteInfo> favoriteList= favoriteInfoService.list(new QueryWrapper<FavoriteInfo>()
//					.eq("obj_type",ShopObjType.Product_ObjType)
//					.eq("obj_no", product.getProductNo())
//					.eq("user_id", userInfo.getId())
//					);
//			product.setIsFavorite(YNEnum.NO.getCode());
//			product.setIsCollect(YNEnum.NO.getCode());
//			
//			if(!CollectionUtils.isEmpty(favoriteList)) {
//				favoriteList.forEach(item->{
//					if(FavoriteBizTypeEnum.Biz_Favorite.getCode().equals(item.getType())) {
//						product.setIsFavorite(YNEnum.YES.getCode());
//					}else if(FavoriteBizTypeEnum.Biz_Collect.getCode().equals(item.getType())) {
//						product.setIsCollect(YNEnum.YES.getCode());
//					}
//				});
//			}
//		}
//		
//		if(!CollectionUtils.isEmpty(product.getSkuItems())) {
//			List<ProductStockInfo> stockList= productStockInfoService.list(new QueryWrapper<ProductStockInfo>().eq("product_no", productNo));
//			if(!CollectionUtils.isEmpty(stockList)) {
//				for(ProductSkuItem sku: product.getSkuItems()) {
//					stockList.forEach(item->{
//						if(sku.getSkuNo().equals(item.getSkuNo())) {
//							sku.setStockNum(item.getNum());
//							sku.setFreezeNum(item.getFreezeNum());
//						}
//					});
//				}
//			}
//		}
//		return BaseResult.ok(product);
//	}
	

}
